Kinesis Data Generatorを使用してKinesis Data Streamsにデータを送信してみた。
概要
Kinesis Data Generator(KDG)は、テストデータの連続したストリームを生成できます。Kinesis Data Generatorは、テストデータをKinesis Data Streams または Kinesis Firehose Delivery Streamに送信できます。KDGは毎秒数千のレコードを連続して送信することができます。
この記事では、Kinesis Data Generatorを使用してKinesis Data Streamsにデータを送信してみました。その後、データは処理のためにLambdaに送信されます。データレコードがストリームに書き込まれると、Lambda Functionが呼び出され、データが処理されます。
やってみた
IAM ロールの作成
- この設定でIAMロールを作成しておきます。
- 信頼されたエンティティの種類 : AWS のサービス
- ユースケース : AWS Lambda
- ポリシー : AWSLambdaKinesisExecutionRole
- ロールの名前 : Lambda-Kinesis
Kinesis Data Streamの作成
- Amazon Kinesisコンソールで、Kinesis Data Streamsを選択して、Create data streamをクリックしておきます。
- 次の設定でData Streamを作成しておきます。
- Data stream capacity : Provisioned
- Provisioned shards : 1
Lambda Functionの作成
- AWS Lambdaコンソールで、Create functionを選択しておきます。
- 関数名を入力して、RuntineでNode.jsを選択して、前の手順で作成したIAMロールを選択して、関数を作成しておきます。
- 機能コードを次のコードに置き換えます。必要に応じてコードを変更できます。
exports.handler = function(event, context) { event.Records.forEach(function(record) { var data = Buffer.from(record.kinesis.data, 'base64').toString('ascii'); console.log('Decoded data:', data); }); };
- 作成したLambda Functionを開き、[Add trigger]をクリックしておきます。
- 次の設定でトリガーを作成しておきます。
- Kinesis stream : 前の手順で作成したKinesis Streamを選択しておきます。
- Batch Size: 100
- Starting Position: Latest
Kinesis Data Generatorの作成
- Amazon Kinesis Data Generatorを開いて、[Create a Cognito User with CloudFormation]をクリックしておきます。
- これによりCloudFormationスタックが作成され、何も変更せずに[Next]をクリックしておきます。
- ユーザー名とパスワードを入力して、スタックを作成しておきます。
- スタック出力からリンクをクリックしておきます。
- ユーザー名とパスワードを入力してサインインしておきます。
Kinesis Data Generatorを使用してテストデータを送信する
- Kinesis Data Generatorにサインインした後、次の設定でテストデータを送信しておきます。
- Region : us-west-2
- Stream : 以前に作成したストリームを選択します。
- テンプレートを入力してデータを送信します。
- データレコードが追加されると、Lambda関数が呼び出されます。この関数は、レコードからデータをデコードしてログに記録します。CloudWatchログでアウトプットを見ることができます。
まとめ
Kinesis Data Generatorを使用してKinesis Data Streamsにデータを送信してみました。Kinesis Data GeneratorからKinesis Firehose Delivery Streamにテストデータを送信することもできます。
Reference: